package com.niu.pojo;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @Author 鹅鹅鹅
 * @Version 1.0.0
 * @Date 2025/7/15 15:44
 * @Description 统一响应结果类
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class MyResult<T> {

    // 响应状态码, 1: 成功 0: 失败
    private Integer code;
    // 响应消息
    private String msg;
    // 返回的结果
    private T data;

    // 返回成功的信息
    public static <T> MyResult<T> ok(T data){
        return MyResult.<T>builder().code(1).msg("SUCCESS").data(data).build();
    }

    // 返回自定义的成功信息
    public static <T> MyResult<T> ok(Integer code, String msg, T data){
        return MyResult.<T>builder().code(code).msg(msg).data(data).build();
    }

    // 返回失败的信息
    public static <T> MyResult<T> error(String msg){
        return MyResult.<T>builder().code(0).msg(msg).data(null).build();
    }

    // 返回自定义的失败信息
    public static <T> MyResult<T> error(Integer code, String msg, T data){
        return MyResult.<T>builder().code(code).msg(msg).data(data).build();
    }
}
